package com.wangzaiplus.test.designpattern.abstractfactory;

/**
 * @ClassName AbstractFactory
 * @Description: TODO
 * @Author wgc
 * @Date 2020/06/17 10:51
 * @Version V1.0
 **/
public interface AbstractFactory {
    public Product1 newProduct1();
    public Product2 newProduct2();
}
interface  Product1{
    public void show1();
}
interface Product2{
    public void show2();
}
//具体体工厂（Concrete Factory）：主要是实现抽象工厂中的多个抽象方法，完成具体产品的创建。
class  ConcreteFactory implements  AbstractFactory{

    public Product1 newProduct1()
    {
        System.out.println("具体工厂 1 生成-->具体产品 11...");
        return new ConcreteProduct11();
    }


    public Product2 newProduct2()
    {
        System.out.println("具体工厂 1 生成-->具体产品 21...");
        return new ConcreteProduct21();
    }
}
class  ConcreteProduct21 implements  Product2{

    @Override
    public void show2() {
        System.out.println("------show2-------");
    }
}
class  ConcreteProduct11 implements Product1 {

    @Override
    public void show1() {
        System.out.println("------show1-------");
    }
}

class Test{
    public static void main(String[] args){

    }
}